/***********************************************************************
*
* Copyright (c) 2012-2022 Barbara Geller
* Copyright (c) 2012-2022 Ansel Sermersheim
*
* Copyright (c) 2015 The Qt Company Ltd.
* Copyright (c) 2012-2016 Digia Plc and/or its subsidiary(-ies).
* Copyright (c) 2008-2012 Nokia Corporation and/or its subsidiary(-ies).
*
* This file is part of CopperSpice.
*
* CopperSpice is free software. You can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* CopperSpice is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* https://www.gnu.org/licenses/
*
***********************************************************************/

#include <qgenericplugin_qpa.h>
#include "qlinuxinput.h"

QT_BEGIN_NAMESPACE

class QLinuxInputPlugin : public QGenericPlugin
{
public:
    QLinuxInputPlugin();

    QStringList keys() const;
    QObject* create(const QString &key, const QString &specification);
};

QLinuxInputPlugin::QLinuxInputPlugin()
    : QGenericPlugin()
{
}

QStringList QLinuxInputPlugin::keys() const
{
    return (QStringList()
            << QLatin1String("LinuxInputMouse")
            << QLatin1String("LinuxInputKeyboard"));
}

QObject* QLinuxInputPlugin::create(const QString &key,
                                                 const QString &specification)
{
    if (!key.compare(QLatin1String("LinuxInputMouse"), Qt::CaseInsensitive))
        return new QLinuxInputMouseHandler(key, specification);
    if (!key.compare(QLatin1String("LinuxInputKeyboard"), Qt::CaseInsensitive))
        return new QLinuxInputKeyboardHandler(key, specification);
    return 0;
    }

Q_EXPORT_PLUGIN2(qlinuxinputplugin, QLinuxInputPlugin)

QT_END_NAMESPACE
